/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ua.ad.feedsreader.actions;

import com.opensymphony.xwork2.ActionSupport;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.ibatis.session.SqlSession;
import ua.ad.feedsreader.mybatis.config.MyBatisSqlSessionFactory;
import ua.ad.feedsreader.mybatis.mappers.beans.Utilizador;
import ua.ad.feedsreader.mybatis.mappers.beans.UtilizadorAcesso;
import ua.ad.feedsreader.mybatis.mappers.clients.UtilizadorAcessoMapper;
import ua.ad.feedsreader.mybatis.mappers.clients.UtilizadorMapper;

/**
 *
 * @author sexta13
 */
public class RegistoUtilizadorAction extends ActionSupport {

    /**
	 * 
	 */
	private static final long serialVersionUID = -7284671984737330299L;
	private String nome;
    private String dataNascimento;
    private String email;
    private String nomeUtilizador;
    private String senha;
    private String genero;

    @Override
    public String execute() throws Exception {

        SqlSession bdSession = MyBatisSqlSessionFactory.getSqlSessionFactory().openSession();

        UtilizadorAcessoMapper utilizadorAcesso = bdSession.getMapper(UtilizadorAcessoMapper.class);
        UtilizadorMapper utiliz = bdSession.getMapper(UtilizadorMapper.class);


        Utilizador ut = new Utilizador();

        ut.setDataCriacao(new Date());

        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        Date dataNasc = null;
        System.out.println("DATA NASCIMENTO "+getDataNascimento());
        System.out.println("Email "+getEmail());
        System.out.println("Nome utiliz "+getNomeUtilizador());
        
        try {
            dataNasc = df.parse(getDataNascimento());
        } catch (ParseException e) {
            System.out.println("erro a fazer o parse da data de nascimento");
        }

        ut.setDataNascimento(dataNasc);
        ut.setEmail(getEmail());
        ut.setEstado(1);
        ut.setNome(getNome());
        ut.setSexo(getGenero().substring(0,1));
        
        utiliz.insertSelective(ut);

        UtilizadorAcesso ua = new UtilizadorAcesso();
        ua.setEstado(1);
        ua.setPassword(getSenha());
        ua.setUsername(getNomeUtilizador());
        ua.setIdUser(ut.getId());
        
        utilizadorAcesso.insertSelective(ua);
       
        //setRegistoMessage("Registo efectuado com sucesso. Fa√ßa o login.");

        bdSession.close();
        
        return SUCCESS;

    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getNomeUtilizador() {
        return nomeUtilizador;
    }

    public void setNomeUtilizador(String nomeUtilizador) {
        this.nomeUtilizador = nomeUtilizador;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

	/**
	 * @return the dataNascimento
	 */
	public String getDataNascimento() {
		return dataNascimento;
	}

	/**
	 * @param dataNascimento the dataNascimento to set
	 */
	public void setDataNascimento(String dataNascimento) {
		this.dataNascimento = dataNascimento;
	}
}
